var socketOpen = false
var socketMsgQueue = []

wx.connectSocket({
  url: 'test.php'
})
//open成功回调
wx.onSocketOpen(function (res) {
  console.log('WebSocket连接已打开！')
})
// OPEN失败回调
wx.onSocketError(function (res) {
  console.log('WebSocket连接打开失败，请检查！')
})
wx.onSocketOpen(function (res) {
  socketOpen = true
  for (var i = 0; i < socketMsgQueue.length; i++) {
    sendSocketMessage(socketMsgQueue[i])
  }
  socketMsgQueue = []
})

// 发送消息。
function sendSocketMessage(msg) {
  if (socketOpen) {
    wx.sendSocketMessage({
      data: msg
    })
  } else {
    socketMsgQueue.push(msg)
  }
}
// 接收消息
wx.onSocketMessage(function (res) {
  console.log('收到服务器内容：' + res.data)
})


//注意这里有时序问题，
//如果 wx.connectSocket 还没回调 wx.onSocketOpen，而先调用 wx.closeSocket，那么就做不到关闭 WebSocket 的目的。
//必须在 WebSocket 打开期间调用 wx.closeSocket 才能关闭。
wx.onSocketOpen(function () {
  wx.closeSocket()
})

//关闭链接
wx.onSocketClose(function (res) {
  console.log('WebSocket 已关闭！')
})